/* 
 *  定时器
 *  传入对象opt={}
 *  type: 倒计时类型   1 普通倒计时(finishtime值无效)   2 日期倒计时(num值无效)
 *  num : 普通数字倒计时  
 *  finishtime:结束时间
 *  callback : 执行返回数据
 *  complete : 结束执行方法 
 *  
 */
 
let Timer=function(opt){
	this.flag=true;
	this.num=opt.num+1;
	this.type=opt.type;    
	this.finishtime=opt.finishtime;  	
	this.resultType=opt.resultType
	this.timer=null; 
 }
Timer.prototype={ 
	start:function(fn){ 
		let callback=fn.success;
		let complate=fn.complate;
		if(this.type=='1'){
			this.timer=setInterval(()=>{
				if(this.num==1){
					clearInterval(this.timer);  
					return complate()
				}else{
					this.num--;  
					return callback(this.num)
				};			
			},1000)  
		}else if(this.type=='2'){
			let result='';
			let hourUnit=1*60*60;  // 1小时秒数
			let minUnit=1*60;   // 1分秒数
			let secUnit=1;      // 1秒 
			this.timer=setInterval(()=>{
				// 计算当前时间距离结束时间差 并把毫秒数转成秒数 
				let iRews=parseInt((new Date(this.finishtime).getTime()-new Date().getTime())/1000);
				
				if(iRews<=0){ 
					clearInterval(this.timer); 
					return complate()
				}else{ 					
					let hour=parseInt(iRews/hourUnit);
					iRews%=hourUnit;
					let min=parseInt(iRews/minUnit); 
					iRews%=minUnit;
					let sec=parseInt(iRews/secUnit);
					
					if(hour<10){
						hour='0'+hour;
					}
					if(min<10){
						min='0'+min;
					}
					 
					if(this.resultType==1){
						result=parseInt(hour)+'时'+min+'分'+sec+'秒';
					}else if(this.resultType==2){
						result=parseInt(hour)+':'+min+':'+sec;
					}  
					return callback(result)
				} 
			},1000) 
		}
	},
	stop:function(){
		clearInterval(this.timer)
	}
 }
 
 export default Timer
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 